<script setup lang="ts">
// 接口 interface继承 ---  extends
interface Parent {
  money: number;
  car: string;
  // 下面的写法是函数的类型，不是箭头函数
  drive: () => {}; // 这个表示 drive函数 返回一个对象
  // drive: () => void;  // 这个表示 drive函数 没有返回值，是void
}

// extends以后， Son 就拥有了 父亲 所有的属性和方法
interface Son extends Parent {
  name: string;
  girlFriend: string;
}

const s1: Son = {
  name: '今天没挨打',
  girlFriend: '问一下别人男朋友',
  money: 10000000,
  car: '华为问界',
  drive: () => {
    return {};
  },
  // drive: () => ({}) // 这里是具体的函数体，表示返回一个空对象 {}
  // drive: () => {} // 这个代码表示什么都不返回，是一个空函数体，对应ts函数类型就是 () => void
};

console.log(s1);

// interface Son {
//   money: number,
//   car: string,
//   drive: () => {},
//   name: string,
//   girlFriend: string
// }
</script>

<template>123</template>
